package demo12.gumballRemote;

import java.rmi.Remote;
import java.rmi.RemoteException;

/*
 * 
 * 1. RMI概述

RMI（Remote MethodInvocation）是分布对象软件包，
简化了在多台计算机上的Java应用之间的通信，使用的JDK版本必须在1.1以上。
用到的类有两个：第一java.rmi.Remote，所有可以被远程调用的对象都必须实现该接口；
第二java.rmi.server.UnicastRemoteObject，所有可以被远程调用的对象都必须扩展该类。

2. 什么是RMI

远程方法调用是一种计算机之间对象互相调用对方函数，启动对方进程的一种机制，
使用这种机制，某台计算机上的对象在调用另外一台计算机方法时，使用的程序语法规则和在本地机上对象间的方法调用的语法规则一样。

3. 实现一个简单的RMI

必须构造四个主要的类：远程对象的本地接口、RMI客户、远程对象实现和RMI服务器。
RMI服务器生成远程对象实例的一个实例，并用一个特殊的URL注册它，RMI客户在远程服务器上查找对象，
若找到就把它转换成本地接口类型，然后像一个本地对象一样使用它*/

//创建远程接口GumballMachineRemote,注意远程接口需要继承Remote,方法都要抛出RemoteException
public interface GumballMachineRemote extends Remote{
	public int getCount() throws RemoteException;
	public String getLocation() throws RemoteException;
	public State getState() throws RemoteException;
}
